Matlab中function函数的使用 |
您所在的位置:网站首页 › matlab return函数用法 › Matlab中function函数的使用 |
目录 语法 说明 示例 包含一个输出的函数 包含多个输出的函数 脚本文件中的函数 函数文件中的多个函数 带参数验证的函数 function函数是声明函数名称、输入和输出。 语法 function [y1,...,yN] = myfun(x1,...,xM) 说明function [y1,...,yN] = myfun(x1,...,xM) 声明名为 myfun 的函数,该函数接受输入 x1,...,xM 并返回输出 y1,...,yN。此声明语句必须是函数的第一个可执行代码行。有效的函数名称以字母字符开头,并且可以包含字母、数字或下划线。 可以将函数保存在以下位置: 只包含函数定义的函数文件中。文件的名称须与文件中第一个函数的名称一致。 包含命令和函数定义的脚本文件中。函数必须位于该文件的末尾。脚本文件不能与文件中的函数具有相同的名称。R2016b 或更高版本的脚本中支持函数。 文件可以包含多个局部函数或嵌套函数。为提高可读性,可使用 end 关键字来表示文件中每个函数的末尾。以下情况下需要 end 关键字: 文件中有任意函数包含嵌套函数。 该函数是函数文件中的局部函数,并且文件中有局部函数使用end关键字。 该函数是脚本文件内的局部函数。 示例 包含一个输出的函数在名为 average.m 的文件中定义一个函数,该函数接受一个输入向量,计算各个值的平均值,然后返回单个结果。 function ave = average(x) ave = sum(x(:))/numel(x); end从命令行调用该函数。 z = 1:99; ave = average(z) ave = 50 包含多个输出的函数在名为stat.m的文件中定义一个函数,该函数返回输入向量的均值和标准差。 function [m,s] = stat(x) n = length(x); m = sum(x)/n; s = sqrt(sum((x-m).^2/n)); end从命令行调用该函数。 values = [12.7, 45.4, 98.9, 26.6, 53.1]; [ave,stdev] = stat(values) ave = 47.3400 stdev = 29.4124 脚本文件中的函数 在名为 integrationScript.m 的文件中定义一个脚本,以计算被积函数在 注意:在脚本中包括函数需要安装 MATLAB® R2016b 或更高版本。 % Compute the value of the integrand at 2*pi/3. x = 2*pi/3; y = myIntegrand(x) % Compute the area under the curve from 0 to pi. xmin = 0; xmax = pi; f = @myIntegrand; a = integral(f,xmin,xmax) function y = myIntegrand(x) y = sin(x).^3; end y = 0.6495 a = 1.3333 函数文件中的多个函数在名为 stat2.m 的文件中定义两个函数,其中第一个函数调用第二个函数。 function [m,s] = stat2(x) n = length(x); m = avg(x,n); s = sqrt(sum((x-m).^2/n)); end function m = avg(x,n) m = sum(x)/n; end函数 avg 是局部函数。局部函数仅可供同一文件中的其他函数使用。 从命令行调用函数 stat2。 values = [12.7, 45.4, 98.9, 26.6, 53.1]; [ave,stdev] = stat2(values) ave = 47.3400 stdev = 29.4124 带参数验证的函数定义一个函数,该函数将输入限制为不包含 Inf 或 NaN 元素的数值向量。此函数使用 arguments 关键字,该关键字在 MATLAB® 版本 R2019b 及更高版本中为有效关键字。 function [m,s] = stat3(x) arguments x (1,:) {mustBeNumeric, mustBeFinite} end n = length(x); m = avg(x,n); s = sqrt(sum((x-m).^2/n)); end function m = avg(x,n) m = sum(x)/n; end 在 arguments 代码块中,(1,:) 表示 x 必须为向量。验证函数 {mustBeNumeric, mustBeFinite} 将 x 中的元素限制为非 Inf 或 NaN 的数值。可以参考函数参数验证。 如果调用函数时所带的向量包含 NaN 元素,则违反了输入参数声明。此违规会导致 mustBeFinite 验证函数引发错误。 values = [12.7, 45.4, 98.9, NaN, 53.1]; [ave,stdev] = stat3(values) Invalid input argument at position 1. Value must be finite. |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |